- Is Wi-Fi 7 worth the upgrade? Here's my advice after using this next-gen router for a week
- How Cisco volunteers multiply impact for nonprofits
- MITRE CVE Program in Jeopardy
- This OnePlus phone is a solid alternative to the flagships - and it's over 30% off
- Want to lock in your internet rate for 5 years? Comcast Xfinity has a deal for you
8 unusual Linux commands

This post examines eight somewhat unusual Linux commands that are worth knowing. But before we get into the specific commands, you can run the command below to see whether these eight commands are installed on your system. For each command, you’ll see the file system location for the command executable or a line that starts with “no command in (PATH)” where “PATH” will be a display of your search path – the places where the command looks for them.
[shs@fedora ~]$ for cmd in yes shuf column pv tldr stat namei rev
do
which $cmd
done
The output should look like this if all the commands are installed:
usr/bin/yes
/usr/bin/shuf
/usr/bin/column
/usr/bin/pv
/usr/bin/tldr
/usr/bin/stat
/usr/bin/namei
/usr/bin/rev
Now let’s take a look at what each of these commands can do for you.
1. The yes command
The yes command will repeat the word “yes” or whatever string you provide over and over again (e.g., with a command like “yes Hello World”) until you’ve seen enough and use ^c to stop the output. Be forewarned that the output will fill your screen incredibly fast. The more useful aspect of this command is that you can use it to answer “yes” to a script that asks a lot of questions. Just run a command like this and you won’t have to type “yes” to whatever questions it will ask:
$ yes | scriptname
2. The shuf command
The shuf command will randomly shuffle the lines in a file as shown in the examples below.
$ shuf staff $ shuf staff
Sam Adams Sally Rose
Elaine Henry John Doe
Joanne Zahn Mary Berry
Mary Berry David Bloom
Lisa Stone Joanne Zahn
John Doe Sam Adams
Ben Matson Eric Docker
Eric Docker Lisa Stone
David Bloom Elaine Henry
Sally Rose Ben Matson
Shuffled output can be useful when you need random text for some task or to test a script to make sure that its output is what you expect to see.
3. The column command
The column command will display text in columns. Here are two examples of how to use it:
$ cat staff | column
John Doe Lisa Stone Joanne Zahn Eric Docker Ben Matson
Mary Berry Elaine Henry David Bloom Sam Adams Sally Rose
$ cat staff | column -t
John Doe
Mary Berry
Lisa Stone
Elaine Henry
Joanne Zahn
David Bloom
Eric Docker
Sam Adams
Ben Matson
Sally Rose
4. The pv command
The pv (pipe viewer) command provides a useful way to display the progress of data being sent through a pipe. Here’s an example. Note the output displays the progress and the speed of the command.
$ pv largefile.zip | tar xzf -
348KiB 0:00:00 [37.4MiB/s] [============> ] 18%
5. The tldr command
The tldr command provides a simplified man page that displays a series of examples on how to use the command you’re asking about.
]$ tldr date
date
Set or display the system date.
More information: https://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html.
- Display the current date using the default locale's format:
date +%c
- Display the current date in UTC, using the ISO 8601 format:
date --utc +%Y-%m-%dT%H:%M:%S%Z
- Display the current date as a Unix timestamp (seconds since the Unix epoch):
date +%s
- Convert a date specified as a Unix timestamp to the default format:
date --date @1473305798
- Convert a given date to the Unix timestamp format:
date --date "2018-09-01 00:00" +%s --utc
- Display the current date using the RFC-3339 format (YYYY-MM-DD hh:mm:ss TZ):
date --rfc-3339 s
- Set the current date using the format MMDDhhmmYYYY.ss (YYYY and .ss are optional):
date 093023592021.59
- Display the current ISO week number:
date +%V
6. The stat command
The stat command provides considerably more details on a file than the long file listings provided by the “ls -l” command. These include the dates and times of the latest updates and accesses.
$ stat staff
File: staff
Size: 112 Blocks: 8 IO Block: 4096 regular file
Device: 0,51 Inode: 4975 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1001/ shs) Gid: ( 1001/ shs)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2025-04-09 13:19:11.313070260 -0400
Modify: 2025-04-09 13:19:06.317039688 -0400
Change: 2025-04-09 13:19:06.317039688 -0400
Birth: 2025-04-09 13:19:06.317039688 -0400
7. The namei command
The namei command breaks a pathname into directory levels – showing each directory on a separate line.
$ namei -lx /usr/bin
f: /usr/bin
Dr-xr-xr-x root root /
drwxr-xr-x root root usr
dr-xr-xr-x root root bin
$ namei `pwd`
f: /home/shs
d /
d home
d shs
8. The rev command
The rev command reverses lines whether passed to the command as standard in or stored in a file.
$ echo Hello, World! | rev
!dlroW ,olleH
$ echo Hello, World! | rev | rev
Hello, World!
Every 10.0s: date fedora: Wed Apr 9 14:00:42 2025
Wed Apr 9 02:00:42 PM EDT 2025
Wrap-up
Working on the Linux command line can be both profitable and fun, and there’s always something new to learn.